ফাংশনস (Functions) কী?
ফাংশন হল একটি কোড ব্লক, যা নির্দিষ্ট কাজ সম্পাদন করার জন্য ব্যবহৃত হয়। ওয়েব ডেভেলপমেন্টে JavaScript-এ ফাংশনগুলি কোডের পুনঃব্যবহারযোগ্য অংশ হিসেবে কাজ করে, যা একাধিক জায়গায় ব্যবহার করা যায়। ফাংশন তৈরি করার জন্য function কীওয়ার্ড ব্যবহার করা হয়।
ফাংশন একটি নির্দিষ্ট আর্গুমেন্ট গ্রহণ করতে পারে এবং একটি ফলাফল প্রদান করতে পারে। এটি ওয়েব পেজের কাজ আরও সুশৃঙ্খল এবং কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করতে সহায়ক।
ফাংশন তৈরি এবং ব্যবহার
ফাংশন ডিফাইন করা:
function greetUser(name) {
return "Hello, " + name + "!";
}
এখানে:
greetUserএকটি ফাংশন নাম।nameহল একটি প্যারামিটার (parameter), যা ফাংশন কল করার সময় পাঠানো হয়।returnস্টেটমেন্টটি ফাংশনটির আউটপুট প্রদান করে।
ফাংশন কল করা:
let message = greetUser("John");
console.log(message); // Output: Hello, John!
এখানে:
greetUser("John")ফাংশনটি কল করা হয়েছে এবং"John"প্যারামিটার হিসেবে পাস করা হয়েছে।console.log(message)দিয়ে আউটপুট প্রদর্শিত হচ্ছে।
ফাংশনের ধরন
অ্যাননিমাস ফাংশন (Anonymous Function): ফাংশন যার নাম থাকে না।
let sum = function(a, b) { return a + b; }; console.log(sum(3, 5)); // Output: 8Arrow Functions (ES6): কোডকে আরও সংক্ষিপ্ত করার জন্য ES6-এ আর্চ ফাংশন চালু করা হয়েছে।
let multiply = (a, b) => a * b; console.log(multiply(4, 6)); // Output: 24ফাংশন এক্সপ্রেশন: ফাংশনকে একটি ভ্যারিয়েবলে সংরক্ষণ করা।
let sayHello = function() { alert("Hello World!"); }; sayHello(); // Alerts "Hello World!"
ইভেন্ট হ্যান্ডলিং (Event Handling) কী?
ইভেন্ট হ্যান্ডলিং হলো একটি প্রক্রিয়া যার মাধ্যমে JavaScript ওয়েব পৃষ্ঠায় ঘটতে থাকা ব্যবহারকারীর ইন্টারঅ্যাকশন বা ইভেন্টগুলো (যেমন: ক্লিক, মাউস মুভ, কী প্রেস, ইত্যাদি) ধরতে এবং তাদের জন্য নির্দিষ্ট ফাংশন রান করাতে ব্যবহৃত হয়।
এটি ওয়েব পেজের সাথে ব্যবহারকারীর যোগাযোগের জন্য অত্যন্ত গুরুত্বপূর্ণ। JavaScript-এ ইভেন্ট হ্যান্ডলিং দুটি প্রধানভাবে করা যায়:
- Inline Event Handlers
- Event Listeners
Inline Event Handlers
এটি হল HTML ট্যাগে সরাসরি ইভেন্ট হ্যান্ডলার অ্যাট্রিবিউট যুক্ত করা। উদাহরণস্বরূপ, একটি বাটনে ক্লিক করা হলে একটি ফাংশন কল হবে:
<button onclick="alert('Button clicked!')">Click Me</button>
এখানে:
onclickএকটি ইভেন্ট হ্যান্ডলার, যা বাটনে ক্লিক করার পর ফাংশনকে কল করবে।
Event Listeners
Event Listener হল আরও আধুনিক এবং ভালো পদ্ধতি যা JavaScript দিয়ে ইভেন্ট হ্যান্ডলিং করতে সহায়তা করে। এটি HTML কোডের বাইরে JavaScript ফাইলে ইভেন্ট শোনার এবং প্রতিক্রিয়া জানানোতে ব্যবহৃত হয়।
Event Listener Syntax:
element.addEventListener('event', function() {
// Your code here
});
এখানে:
elementহলো যেই HTML এলিমেন্টের উপর ইভেন্ট শোনা হবে।eventহলো ইভেন্ট টাইপ, যেমনclick,mouseover,keydown, ইত্যাদি।function()হলো সেই ফাংশন যা ইভেন্টটি ঘটলে চালানো হবে।
উদাহরণ:
<button id="myButton">Click Me</button>
<script>
let button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("Button was clicked!");
});
</script>
এখানে:
getElementById("myButton")দিয়ে বাটনটি সিলেক্ট করা হয়েছে।addEventListener("click", function())দিয়ে বাটনটিতে ক্লিক ইভেন্ট অ্যাটাচ করা হয়েছে।
ইভেন্টের প্রকার (Types of Events)
Click Event: একটি এলিমেন্টে ক্লিক করার পর।
document.getElementById("myButton").addEventListener("click", function() { alert("Button clicked!"); });Mouse Events: মাউসের ইভেন্ট যেমন মাউসওভার, মাউসআউট ইত্যাদি।
document.getElementById("myButton").addEventListener("mouseover", function() { console.log("Mouse is over the button!"); });Keyboard Events: কী প্রেস ইভেন্ট, যেমন
keydown,keypress, এবংkeyup।document.addEventListener("keydown", function(event) { console.log("Key pressed: " + event.key); });Form Events: ফর্মের ইনপুট ইভেন্টগুলি যেমন
submit,focus,blurইত্যাদি।document.getElementById("myForm").addEventListener("submit", function(event) { event.preventDefault(); // Prevents the form from submitting console.log("Form submitted!"); });
ইভেন্ট প্রোপাগেশন
ইভেন্ট প্রোপাগেশন হলো ইভেন্টটি কিভাবে DOM হিরার্কি (DOM Tree) জুড়ে ছড়িয়ে পড়ে। ইভেন্ট প্রোপাগেশন দুটি প্রধানভাবে ঘটে:
- Capturing Phase: ইভেন্ট উপরের থেকে নিচের দিকে (parent to child) চলে যায়।
- Bubbling Phase: ইভেন্ট নিচের থেকে উপরের দিকে (child to parent) ফিরে আসে।
উপরোক্ত ইভেন্টের বাবলিং (bubbling) প্রতিরোধ করার জন্য event.stopPropagation() এবং ডিফল্ট আচরণ বন্ধ করার জন্য event.preventDefault() ব্যবহার করা হয়।
document.getElementById("myButton").addEventListener("click", function(event) {
event.stopPropagation(); // Prevents event bubbling
alert("Button clicked!");
});
উপসংহার
ফাংশনস এবং ইভেন্ট হ্যান্ডলিং ওয়েব ডেভেলপমেন্টের দুটি গুরুত্বপূর্ণ বিষয়। ফাংশনগুলি কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বাড়ায়, যখন ইভেন্ট হ্যান্ডলিং ওয়েব পৃষ্ঠায় ব্যবহারকারীর ইন্টারঅ্যাকশন নিয়ন্ত্রণ করতে সহায়তা করে। JavaScript-এ ফাংশন তৈরি করা এবং বিভিন্ন ইভেন্ট (যেমন ক্লিক, মাউস মুভ, কী প্রেস) শোনা এবং পরিচালনা করা ওয়েব পৃষ্ঠার ইন্টারঅ্যাকটিভিটি উন্নত করতে অপরিহার্য।
Read more